﻿using FlashPay.Entity.Response.Bank;
using FlashPay.Entity.Response.BankCard;
using FlashPay.Entity.Response.Company;
using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace FlashPay.Entity.Response.Payment
{
    /// <summary>
    /// 付款卡
    /// </summary>
    public class PaymentCardResponse
    {
        /// <summary>
        /// 付款卡公司编号
        /// </summary>
        public int BcId { get; set; }

        /// <summary>
        /// 付款卡公司编号
        /// </summary>
        public int CompanyId { get; set; }

        /// <summary>
        /// 公司名称
        /// </summary>
        public string CompanyName { get; set; }

        /// <summary>
        /// 公司英文名称
        /// </summary>
        public string CompanyNameEn { get; set; }

        /// <summary>
        /// 银行名称
        /// </summary>
        public string BankName { get; set; }

        /// <summary>
        /// 银行卡号
        /// </summary>
        public string CardNumber { get; set; }

        /// <summary>
        /// 银行卡用户名
        /// </summary>
        public string CardName { get; set; }

        /// <summary>
        /// 银行卡类型(3.付款卡)
        /// </summary>
        public sbyte CardType { get; set; }

        /// <summary>
        /// 银行卡使用状态(1.有效、2.冻结)
        /// </summary>
        public sbyte UsingStatus { get; set; }

        /// <summary>
        /// 银行卡启用状态(1.启用、2.禁用)
        /// </summary>
        public sbyte EnableStatus { get; set; }

        /// <summary>
        /// 参考余额
        /// </summary>
        public string Balance { get; set; }

        /// <summary>
        /// 付款区间起(前台显示合并显示，中文显示 ”付款区间”，ex： 0 - 5000)
        /// </summary>
        public decimal PaymentStart { get; set; }

        /// <summary>
        /// 付款区间迄(前台显示合并显示，中文显示 ”付款区间”，ex： 0 - 5000)
        /// </summary>
        public decimal PaymentEnd { get; set; }

        /// <summary>
        /// 付款区间起迄(前台显示合并显示，中文显示 ”付款区间”，ex： 0 - 5000)
        /// </summary>
        public string PaymentInterval { get; set; }
        
        /// <summary>
        /// 付款费率
        /// </summary>
        public decimal PayFeeRatio { get; set; }

        /// <summary>
        /// 参考余额最后更新时间
        /// </summary>
        public string BalanceLastUpdate { get; set; }

        /// <summary>
        /// 时间差(分)
        /// </summary>
        public double TimeDifference { get; set; }

        /// <summary>
        /// 存款等级
        /// </summary>
        public string DepositType { get; set; }

        /// <summary>
        /// 付款类型名称
        /// </summary>
        public string PaymentTypeName { get; set; }

        /// <summary>
        /// 跨行转账(1.同行、2.跨行、3.全部)
        /// </summary>
        public sbyte CrossBankPay { get; set; }

        /// <summary>
        /// 收款费率
        /// </summary>
        public decimal DepositFeeRatio { get; set; }

        /// <summary>
        /// 机器位置
        /// </summary>
        public string IpAddress { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 使用时间
        /// </summary>
        public string UsingStatusRemark { get; set; }

        /// <summary>
        /// 虚拟机编码
        /// </summary>
        public string VmClientId { get; set; }

        /// <summary>
        /// 付款数量
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// 付款总金额
        /// </summary>
        public string WithdrawalAmount { get; set; }

        /// <summary>
        /// 收款总金额
        /// </summary>
        public string DepositAmount { get; set; }
        
        /// <summary>
        /// 余额变化表编号
        /// </summary>
        public string AdjustBalanceRid { get; set; }

        /// <summary>
        /// 限制付款
        /// </summary>
        public bool Limit { get; set; }

        /// <summary>
        /// 限制付款金额
        /// </summary>
        public decimal? LimitPayAmount { get; set; }

        /// <summary>
        /// 限制付款笔数
        /// </summary>
        public int? LimitPayCount { get; set; }

        /// <summary>
        /// 限制收款金额
        /// </summary>
        public decimal? LimitDepositAmount { get; set; }

        /// <summary>
        /// 限制收款笔数
        /// </summary>
        public int? LimitDepositCount { get; set; }

        /// <summary>
        /// 平台类型（2B：1、2C:2）
        /// </summary>
        public int PlatformType { set; get; }

        /// <summary>
        /// 余额变化
        /// </summary>
        public List<AdjustBalanceResponse> AdjustBalanceResponses { get; set; }

        /// <summary>
        /// 公司
        /// </summary>
        public List<CompanyResponse> CompanyResponse { get; set; }

        /// <summary>
        /// 银行
        /// </summary>
        public List<BankInfoResponse> BankInfoResponse { get; set; }
    }
}
